'****************************************************************
'*  Name    : T6963C-MARAC VERSION.BAS                          *            
'*  Author  : VAMVAKOYRIS                                       *
'*  Notice  : Copyright (c) 2007 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 1/6/2007                                          *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
                    DEFINE OSC 8

'Variables used
' *** MODIFY AS REQUIRED FOR OTHER PINS AND PORTS *****
'
glcd_tris 	var 	TRISB		'Data bus direction
glcd_dat	var 	PORTB		'LCD 8 bit data bus
glcd_wr	 	var	    PORTA.5		'Write control bit
glcd_rd	 	var 	PORTA.1		'Read control bit
glcd_ce	 	var 	PORTA.2		'Chip enable control bit
glcd_cd	 	var 	PORTA.3		'Command and Data toggle bit

 glcd_rst	var	    PORTA.0		'Reset control bit


'General use variables used
glcd_msb	var	BYTE		'Data 1 variable
glcd_lsb	var	BYTE 		'Data 2 variable
glcd_cmd	var	BYTE 		'Command variable
gl_tmp	 	var	BYTE		'Temp var		
gl_old	 	var     BYTE		'Previous byte var
gl_x     	var     WORD		'16 bit var for address loop
gl_y	 	var     WORD		'16 bit var for address loop
gl_i	 	var	BYTE
gl_j	 	var     BYTE
gl_k	 	var     BYTE
gl_l	 	var     BYTE
num_1	 	var	BYTE
num_2	 	var	BYTE
gl_stp	 	var	BYTE		'Step var in FOR..NEXT
gl_ad1	 	var	BYTE		'Addr var
gl_ad2	 	var	BYTE		'Addr var
graph_home 	var 	WORD		'LCD graphic start addr
graph_area 	var 	WORD		'LCD graphic bytes per line
text_home  	var 	WORD		'LCD text start addr
text_area  	var 	WORD		'LCD text chars per line




'Initialize variables
gl_tmp   =  0
gl_i     =  0
gl_stp   =  1

'************************
' LCD Module constants  *
'************************
'
'Register set commands:
CURSOR_PTR_SET          con     $21   'Cursor Pointer Set
OFFSET_REG_SET          con     $22   'Offset Register Set
ADDR_PTR_SET            con     $24   'Address Pointer Set

'Control Word Set commands:
TEXT_HOME_SET           con     $40   'Text Home Address Set
TEXT_AREA_SET           con     $41   'Text Area Set
GRAPH_HOME_SET          con     $42   'Graphics Home address Set
GRAPH_AREA_SET          con     $43   'Graphics Area Set

'Mode Set commands (OR with CG rom commands):
OR_MODE                 con     $80   'OR mode
XOR_MODE                con     $81   'XOR mode
AND_MODE                con     $83   'AND mode
TEXT_ATTR_MODE          con     $84   'Text Attribute mode
INT_CG_MODE             con     $80   'Internal CG ROM mode
EXT_CG_MODE             con     $88   'External CG ROM mode

'Display Mode commands (OR together required bits):
DISPLAY_OFF             con     $90   'display off
BLINK_ON                con     $91
CURSOR_ON               con     $92
TEXT_ON                 con     $94
GRAPHIC_ON              con     $98
TEXT_AND_GRAPH_ON	    con     $9C

'Cursor Pattern Select
CURSOR_1LINE            con     $A0
CURSOR_2LINE            con     $A1
CURSOR_3LINE            con     $A2
CURSOR_4LINE            con     $A3
CURSOR_5LINE            con     $A4
CURSOR_6LINE            con     $A5
CURSOR_7LINE            con     $A6
CURSOR_8LINE            con     $A7

'Data Auto Read/Write
DATA_AUTO_WR            con     $B0
DATA_AUTO_RD            con     $B1
AUTO_DATA_RESET         con     $B2

'Data Read/Write
DATA_WR_INC             con     $C0   'Data write and increment addr
DATA_RD_INC             con     $C1   'Data read and increment addr
DATA_WR_DEC             con     $C2   'Data write and decrement addr
DATA_RD_DEC             con     $C3   'Data read and decrement addr
DATA_WR                 con     $C4   'Data write - no addr change
DATA_RD                 con     $C5   'Data read - no addr change

'Screen Peek
SCREEN_PEEK             con     $E0

'Screen Copy
SCREEN_COPY             con     $E8

'Bit Set/Reset (OR with bit number 0-7)

BIT_RESET               con     $F0
BIT_SET                 con     $F8

'************************
' STATUS bits           *
'************************



ASCII_OFFSET		con     $20     'ASCII offset for conversion
GL_PAUSE		    con     2

'Initialize LCD VRAM area variables
graph_home     	=     $1000    'Decimal 4096 bytes
graph_area		=     $0028    '40 bytes per line
text_home		=     $0000
text_area       =     $0028    




'Set appropriate port/bit dir


CMCON=7
TRISA=0
ADCON1=6
PORTA=0
TRISB=0
PORTB=0
TRISC.0=0
TRISC.1=0
TRISC.2=0
TRISC.3=0
TRISC.4=0
PORTC.0=0
PORTC.1=0
PORTC.2=0
PORTC.3=0
PORTA=0          ' NEW LINES
PORTA.0=1        ' NEW LINES

'Initial settings of port and bits
glcd_dat = 0	'Clear PORTD
glcd_wr  = 1    'Write high 
GLCD_RD  = 1    'READ HIGH
glcd_ce  = 1  	'Chip enable high (active low)
glcd_cd  = 1    'Command high
'glcd_fs  = 1	'Set Font size (1=6x8 and 0=8x8 font)
glcd_rst = 1 	'RESET always high (low will reset the LCD controller)
'glcd_bl  = 0	'Backlight 0=off 1=on
'glcd_btn = 0 	'debug led
pause 500	'Let things stabilize
 
glcd_rst = 0	' Reset after power-on
PAUSE 1
glcd_rst = 1



goto init '****** jump past the routines below ******


'*********** PBP Subroutines used in this program *******
DISABLE DEBUG
send_2:
	gosub busy_chk
	glcd_dat = glcd_lsb
	glcd_cd  = 0
	glcd_rd  = 1
	glcd_WR  = 0
	glcd_CE  = 0
	pauseus GL_PAUSE
	glcd_wr  = 1
	glcd_ce  = 1
send_1:
	gosub busy_chk
	glcd_dat = glcd_msb
	glcd_cd  = 0
	glcd_rd  = 1
	glcd_WR  = 0
	glcd_CE  = 0
	pauseus GL_PAUSE
	glcd_wr  = 1
	glcd_ce  = 1
send_cmd:
	gosub busy_chk
	glcd_dat = glcd_cmd
	glcd_rd  = 1
	GLCD_CD  = 1
    glcd_WR  = 0
	glcd_CE  = 0
	pauseus GL_PAUSE
	glcd_wr  = 1
	glcd_ce  = 1
return


busy_chk:
	
    glcd_ce = 1
	glcd_tris= %11111111
	glcd_cd = 1
'	GLCD_RD=0
    glcd_wr = 1
	glcd_RD = 0
	glcd_CE = 0
	pauseus GL_PAUSE
	if (PORTB.0 = 0) OR (PORTB.1 = 0) then busy_chk
	glcd_rd = 1
        glcd_ce = 1
	glcd_tris = %00000000
return

ln1:

	' Set Addr Ptr
	glcd_msb = gl_ad1
	glcd_lsb = gl_ad2
	glcd_cmd = ADDR_PTR_SET
	gosub send_2

    for gl_x = num_1 to num_2 step gl_stp
	glcd_msb = gl_k
	glcd_cmd = DATA_WR_INC
	gosub send_1 
     
    next

 return
 ENABLE DEBUG

 '--------------------------picture routine------------------------

pict_part1:

 glcd_msb=gl_ad1
 glcd_lsb=gl_ad2
 glcd_cmd=ADDR_PTR_SET
 gosub send_2
 
 for gl_i=0 to 196
 lookup gl_i,[$01,$3F,$3F,$3F,$3F,_
$3F,$3F,$3F,$3F,$3D,$3F,$30,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$3E,_
$00,$00,$00,$00,$00,$00,$00,$07,$38,$00,$03,$20,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$3E,$00,$00,$00,$00,$00,$00,$00,$00,$3B,_
$00,$00,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$1F,$3F,$3F,$3F,$3F,$3F,$3F,_
$3F,$3F,$3F,$08,$00,$00,$00,$0C,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$10,$10,$00,$00,$00,$30,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
 glcd_msb=gl_k
 glcd_cmd=DATA_WR_INC
 gosub send_1
 next
 
return

pict_part2:
 for gl_i=0 to 239
lookup gl_i,[$01,$00,$3C,$03,$30,$3C,$00,$3E,$07,$3E,$10,$10,_
$00,$00,$06,$0A,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$01,$00,$3C,$03,$30,$3E,$01,$3E,_
$07,$3E,$10,$17,$3F,$3F,$08,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$3C,$03,_
$30,$3F,$01,$3E,$07,$3F,$10,$10,$00,$00,$28,$05,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$01,$00,$3C,$03,$30,$3F,$23,$3E,$07,$20,$10,$14,_
$00,$00,$14,$01,$2E,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$01,$00,$3C,$03,$30,$3F,$37,$3E,_
$07,$3C,$10,$10,$00,$00,$10,$07,$1C,$0F,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$3C,$03,_
$30,$3F,$3F,$3E,$07,$3C,$10,$14,$00,$00,$12,$10,_
$30,$3E,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
glcd_msb=gl_k
glcd_cmd = DATA_WR_INC
gosub send_1
next

return

pict_part3:

for gl_i=0 to 239
lookup gl_i,[$01,$00,$3C,$03,$30,$3F,$3F,$3E,$07,$3C,$10,$04,_
$00,$00,$00,$02,$00,$00,$1C,$30,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$01,$00,$3C,$03,$30,$3D,$3F,$1E,_
$07,$20,$10,$0B,$3F,$3F,$38,$07,$00,$00,$00,$26,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$3F,$33,_
$30,$3D,$3E,$1E,$07,$3F,$10,$1B,$20,$00,$04,$08,_
$07,$30,$00,$16,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$01,$00,$3F,$33,$30,$3C,$3C,$1E,$07,$3E,$10,$12,_
$00,$00,$04,$00,$00,$00,$1C,$06,$20,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$01,$00,$3F,$33,$30,$3C,$18,$1E,_
$07,$3F,$10,$18,$00,$00,$0D,$20,$00,$1F,$22,$0C,_
$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$01,$3F,$3F,$3F,_
$3F,$3F,$3F,$3F,$3F,$3F,$31,$38,$00,$00,$0E,$00,_
$00,$00,$07,$0E,$20,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
glcd_msb=gl_k
glcd_cmd = DATA_WR_INC
gosub send_1
next
return


pict_part4:

for gl_i=0 to 239
lookup gl_i,[$00,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3E,$38,_
$00,$00,$18,$00,$00,$00,$02,$2C,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$04,$00,$00,$00,$00,$00,$00,_
$00,$00,$01,$18,$00,$00,$00,$00,$00,$00,$00,$0B,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$3F,$3F,_
$3F,$3F,$3F,$3F,$3F,$3F,$3F,$38,$00,$00,$20,$00,_
$00,$00,$02,$08,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$3F,$3E,$04,$1B,$3F,$3F,$3F,$3F,$30,_
$00,$00,$20,$00,$00,$00,$02,$01,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$3F,$27,$3E,$06,$3F,_
$3F,$3F,$3F,$38,$00,$00,$20,$00,$1F,$3E,$02,$04,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,_
$1F,$3F,$03,$2F,$3F,$3F,$3F,$3F,$3F,$3E,$00,$01,_
$3F,$3F,$33,$32,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
glcd_msb=gl_k
glcd_cmd = DATA_WR_INC
gosub send_1
next
return


pict_part5:

for gl_i=0 to 239
lookup gl_i,[$00,$00,$00,$3F,$3F,$3F,$39,$3B,$3F,$3F,$3F,$3F,_
$3F,$3E,$00,$03,$3F,$3F,$30,$28,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$3F,$3C,$3C,$3C,$3B,_
$3F,$3F,$3F,$3F,$3F,$3F,$00,$03,$32,$13,$39,$08,_
$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,_
$3B,$23,$1E,$1D,$3F,$3F,$3F,$3F,$3F,$3F,$00,$03,_
$2E,$0D,$3C,$26,$10,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$03,$34,$18,$2E,$0F,$3F,$20,$07,$00,_
$08,$07,$20,$07,$1A,$00,$37,$30,$20,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$07,$34,$1A,$1E,$0F,_
$3E,$1F,$37,$3C,$00,$00,$3F,$17,$1C,$00,$10,$01,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,_
$3D,$20,$16,$0F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3E,_
$16,$11,$18,$0C,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
glcd_msb=gl_k
glcd_cmd = DATA_WR_INC
gosub send_1
next
return


pict_part6:

for gl_i=0 to 239
lookup gl_i,[$00,$00,$00,$1F,$3D,$30,$17,$2F,$3F,$3F,$3F,$3F,_
$3F,$3F,$3F,$3F,$1E,$0B,$1C,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$1F,$34,$38,$0F,$2F,_
$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$1F,$30,$3E,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,_
$3B,$03,$1F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,_
$2E,$04,$3E,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$3F,$3D,$38,$3F,$1D,$3F,$3F,$30,$00,_
$00,$1F,$3F,$3F,$33,$13,$38,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$1F,$3F,$03,$3F,$3F,_
$3F,$00,$00,$00,$00,$03,$3F,$37,$3E,$0F,$38,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,_
$3F,$3F,$3F,$37,$38,$00,$00,$00,$00,$00,$3F,$3F,_
$3F,$3F,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
glcd_msb=gl_k
glcd_cmd = DATA_WR_INC
gosub send_1
next

return

pict_part7:

for gl_i=0 to 239
lookup gl_i,[$00,$00,$00,$03,$2F,$3F,$3F,$1F,$20,$00,$00,$00,_
$00,$00,$0F,$3E,$3F,$3F,$38,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$01,$3B,$3F,$39,$3C,_
$00,$00,$00,$00,$00,$00,$03,$3F,$2F,$3D,$20,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$3F,$01,$3E,$00,$00,$00,$00,$00,$00,$00,$00,$03,_
$3E,$3E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$3F,$3F,$38,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$0F,$38,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$01,$20,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$01,$3F,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00],gl_k
glcd_msb=gl_k
glcd_cmd = DATA_WR_INC
gosub send_1
next

return







'**********  End of PBP subroutines *********************
'========================================================
'************End of all subroutines *********************


'********************************************************                                                     
'************* BEGIN MAIN PROGRAM *********************** 
'********************************************************   


'***Initialize and setup display headings,titles etc ****
init:				'Initialization

	'See data sheets for more info for the commands and parameters
        
	
    ' Set Graphic Home Addr
	glcd_msb = graph_home.BYTE1		
	glcd_lsb = graph_home.BYTE0
	glcd_cmd = GRAPH_HOME_SET
        gosub send_2

	' Set Graphic Area
	glcd_msb = graph_area.BYTE1
	glcd_lsb = graph_area.BYTE0
	glcd_cmd = GRAPH_AREA_SET
        gosub send_2

       
       
        ' Set Text Home Addr
	glcd_msb = text_home.BYTE1
	glcd_lsb = text_home.BYTE0
	glcd_cmd = TEXT_HOME_SET
        gosub send_2
         
	' Set Text Area
	glcd_msb = text_area.BYTE1
	glcd_lsb = text_area.BYTE0
	glcd_cmd = TEXT_AREA_SET
        gosub send_2

	' Set OR mode
	glcd_cmd = OR_MODE
	gosub send_cmd
 '-------------------UNTIL HERE IS OK----------------------------
	' Set Addr Ptr
	glcd_msb = $00
	glcd_lsb = $00
	glcd_cmd = ADDR_PTR_SET
	gosub send_2
 
	' Set Graphic mode on
	glcd_cmd = GRAPHIC_ON
	gosub send_cmd
	   DISABLE DEBUG
       for gl_i = 1 to 240		' Clear Graphic Screen
	for gl_j = 1 to 64
	  glcd_msb = $00		'Clear byte
	  glcd_cmd = DATA_WR_INC	'Command
	  gosub send_1			'Send glcd_msb followed by glcd_cmd
	next
       next				'Do it 240x64 times
	
	
   
   
   '-----------------display picture------------------------
   
         ' Set Addr Ptr
	'glcd_msb = $12		
	'glcd_lsb = $0C
	'glcd_cmd = ADDR_PTR_SET
	'gosub send_2

    gl_y= $120C  'start picture and print the first 248 bytes 
	gl_ad1= gl_y.BYTE1
	gl_ad2= gl_y.BYTE0
    gosub pict_part1  'print part1 248 bytes
    gosub pict_part2  'print part2 another 248 bytes
    gosub pict_part3
    gosub pict_part4
    gosub pict_part5
    gosub pict_part6
    gosub pict_part7
   
    
    '--------------------------working-----------------------------
    
    ' Set Addr Ptr
'	glcd_msb = $10		
'	glcd_lsb = $00
'	glcd_cmd = ADDR_PTR_SET
'	gosub send_2

'for gl_y= $1000 to $14d8 step $28 'Left Vert Line  14d8 old value and 1000
'	gl_ad1= gl_y.BYTE1
'	gl_ad2= gl_y.BYTE0
 '      gl_k=%11100000
'	num_1 =1
'	num_2 =1
'	gosub ln1
'pause 200
'next
 

'for gl_y= $1027 to $1528 step $28 'Right Vert Line
'	gl_ad1= gl_y.BYTE1
'	gl_ad2= gl_y.BYTE0
'	gl_k= %11000001
'	num_1 =1
'	num_2 =1
'	gosub ln1
'pause 200
'next

  '      gl_k = $3f
'	num_1 = 1
'	num_2 = 40
'	gl_stp = 1
 
'	gl_ad1 = $10
'	gl_ad2 = $00
 '       gosub ln1		' Graphic Line Top

'	gl_ad1 = $10
'	gl_ad2 = $51
 '    gosub ln1		' Graphic Line Middle
'    gl_ad1 = $19
'	gl_ad2 = $d8
 '  gosub ln1		' Graphic Line Bottom

 'enable debug






	
  '  ----------------------working 8/1/09------------------------
    ' Set Graphic & Text mode on
'	glcd_cmd = TEXT_AND_GRAPH_ON
 ' 	gosub send_cmd
       
		 'Set Addr Ptr
'	glcd_msb = $00
	'glcd_lsb = $29    '41 DEYTERH SEIRA PROTO
'     glcd_lsb = $00
 '   glcd_cmd = ADDR_PTR_SET
'	gosub send_2
        
   
 


'	for gl_i = 0 to 36
 '        lookup gl_i,["M A R A C  E L E C T R O N I C S  S.A"],glcd_msb
'	 glcd_msb = glcd_msb - ASCII_OFFSET
'	 glcd_cmd = DATA_WR_INC
'	 gosub send_1
'	next
     
	
    		 'Set Addr Ptr
'	glcd_msb = $00
'	glcd_lsb = $79
 '   glcd_cmd = ADDR_PTR_SET
'	gosub send_2
    
'    for gl_i=0 to 39
'	   lookup gl_i,["1111111111111111111111111111111111111111"],glcd_msb
'	   glcd_msb = glcd_msb - ASCII_OFFSET
'	 glcd_cmd = DATA_WR_INC
''	 gosub send_1
'	next
    
    
    
    	 'Set Addr Ptr
'	glcd_msb = $01
'	'glcd_lsb = $29    '7 SEIRA PROTO
 '    glcd_lsb = $18
  '  glcd_cmd = ADDR_PTR_SET
'	gosub send_2
        
   
 


'	for gl_i = 0 to 99
 '        lookup gl_i,["M A R A C  E L E C T R O N I C S  S.A 222222222222222222222222222222222222222222222222222222222222222"],glcd_msb
'	 glcd_msb = glcd_msb - ASCII_OFFSET
'	 glcd_cmd = DATA_WR_INC
'	 gosub send_1
'	 next
    
'    pause 2000 
	
'   glcd_msb = $00
'	glcd_lsb = $29
'	glcd_cmd = TEXT_HOME_SET
 '       gosub send_2 
    
 ' pause 2000
  
  '  glcd_msb = $00
'	glcd_lsb = $79
'	glcd_cmd = TEXT_HOME_SET
 '       gosub send_2 
    
    
    
    		 'Set Addr Ptr
	'glcd_msb = $01
	'glcd_lsb = $90
    'glcd_cmd = ADDR_PTR_SET
	'gosub send_2
    
    'for gl_i=0 to 39
	'   lookup gl_i,["2222222222222222222222222222222222222222"],glcd_msb
	'   glcd_msb = glcd_msb - ASCII_OFFSET
	' glcd_cmd = DATA_WR_INC
	' gosub send_1
	'next
    
    
    
    ' Set Addr Ptr
	'glcd_msb = $00
	'glcd_lsb = $54
	'glcd_cmd = ADDR_PTR_SET
	'gosub send_2
    
	'for gl_i = 0 to 7
     '    lookup gl_i,["Counter:"],glcd_msb
	 'glcd_msb = glcd_msb - ASCII_OFFSET
	 'glcd_cmd = DATA_WR_INC
	 'gosub send_1
	'next
            
	' Set Addr Ptr
	'glcd_msb = $00
	'glcd_lsb = $65
	'glcd_cmd = ADDR_PTR_SET
	'gosub send_2
                    
	'for gl_i = 0 to 6
     '    lookup gl_i,["Button:"],glcd_msb
	 'glcd_msb = glcd_msb - ASCII_OFFSET
	 'glcd_cmd = DATA_WR_INC
	 'gosub send_1
	'next


	' Set Addr Ptr
'	glcd_msb = $00     
'	glcd_lsb = $ca
'	glcd_cmd = ADDR_PTR_SET
'	gosub send_2
 
'	for gl_i = 0 to 26
 '        lookup gl_i,["         N A V T E X  P R O"],glcd_msb
'	 glcd_msb = glcd_msb - ASCII_OFFSET
'	 glcd_cmd = DATA_WR_INC
'	 gosub send_1
'	next
    PAUSE 5000
  '   PORTA.0=0
   '  PORTA.1=1
END
	' Set Graphic & Text mode on
'	glcd_cmd = TEXT_AND_GRAPH_ON
'	gosub send_cmd
'gl_tmp = 0
'gl_old = 0





'************* MAIN LOOP ******************
'********** Continuous Cycle **************
'******************************************

looper:
'if glcd_btn =1 then		'Debugging code to check if main loop works
'glcd_btn = 0
'pause 200
'else
'glcd_btn = 1
'pause 200
'endif

'for gl_l = $f8 to $ff
'gl_k = gl_l
'gosub design1

	' Set Addr Ptr
'	glcd_msb = $00
'	glcd_lsb = $6d
'	glcd_cmd = ADDR_PTR_SET
'	gosub send_2
   'if glcd_btn = 1 then
'	for gl_i = 0 to 2
 '         lookup gl_i,["OFF"],glcd_msb
'	  glcd_msb = glcd_msb - ASCII_OFFSET
'	  glcd_cmd = DATA_WR_INC
'	  gosub send_1
'	next
 '    'else
'	for gl_i = 0 to 2
 '         lookup gl_i,["ON "],glcd_msb
'	  glcd_msb = glcd_msb - ASCII_OFFSET
'	  glcd_cmd = DATA_WR_INC
'	  gosub send_1
'	next
 '   'endif
'pause 200
'next
 '    if gl_tmp > 9 then
'	gl_tmp = 0
 '    endif
	' Set Addr Ptr
'	glcd_msb = $00
'	glcd_lsb = $5d
'	glcd_cmd = ADDR_PTR_SET
'	gosub send_2
 '       lookup gl_tmp,["0123456789"],glcd_msb
'	glcd_msb = glcd_msb - ASCII_OFFSET
'	glcd_cmd = DATA_WR_INC
'	gosub send_1
 '       gl_tmp = gl_tmp + 1
  'if gl_old =0 then jmp
   '     gl_ad1=$14
	'gl_ad2=gl_old
	'gosub setadr
	'gl_k = $00
	'gosub write1
'jmp:	
'	gl_ad1=$14
'	gl_ad2=$3b+gl_tmp
'	gl_old =gl_ad2
'	gosub setadr
'	gl_k = %11111111
'	gosub write1
 
'goto looper
 'end
'*********** Keeping on looping forever ****



'******** END OF MAIN PROGRAM **************

